﻿using System;

namespace OpenComposite.HumanActivity.Contracts.Participants
{
	public interface IParticipant : IEquatable<IParticipant>
	{
		int ID { get; }
		string Display { get; }

		ParticipantType ParticipantType { get; }

		string ToString();
	}
	#region Enum: ParticipantType
	public enum ParticipantType
	{
		None = 0,
		User = 1,
		Role = 2,
		OrganizationUnit = 3,
		Organization = 4,

		ParticipantRule = 5,
		ActivityUser = 6,
		EmailParticipant = 7,
		PropertyParticipant = 8,

		PartnerRule = 9,
		PartnerRole = 10
	}
	#endregion

	#region Enum: ParticipationType : byte
	public enum ParticipationType : byte
	{
		None = 0,
		IncludedParticipant = 1,
		ExcludedParticipant = 2,
		IncludedReaderParticipant = 3,
		ExcludedReaderParticipant = 4,
		IncludedPastDueParticipant = 5,
		ExcludedPastDueParticipant = 6
	}
	#endregion
}
